package lucky.xiong.煞笔面试题;

import leetcode.editor.cn.common.Person;
import lucky.xiong.basic.内部类.A;

public class 传值还是传引用 {

    static class A {
        public void changeValue1(int a){
            a = 30;
        }

        public void changeValue2(Person a){
            a.setName("xxx");
        }
        public void changeValue3(String str){
            str = "xxx";
        }
    }

    public static void main(String[] args) {
        A a = new A();

        // main方法加载到栈时， age = 20 也加入了
        int age = 20;  // 基本类型不变
        a.changeValue1(age); // 压栈一个20副本 , 改为30 ， 此方法执行完成后出栈。
        System.out.println("age： "+ age);   // 此age打印的时main方法的age = 20

        //方法区  栈        堆
        Person person = new Person("aaaa",12);
        a.changeValue2(person);
        System.out.println("Person name： "+ person.getName());


        String str = "aaaa";
        a.changeValue3(str);
        System.out.println("str： "+ str);





    }

}
